# -*- coding: utf-8 -*-
# name: def's template
# key: def.template
# contributor: Orestis Markou
# contributor: Yasser González Fernández <yglez@uh.cu>
# contributor: Tibor Simko <tibor.simko@cern.ch>
# --
def ${1:name}($2):
    """
    $3
    ${2:$
    (let* ((indent
            (concat "\n" (make-string (current-column) 32)))
           (args
            (mapconcat
             '(lambda (x)
                (if (not (string= (nth 0 x) ""))
                    (concat "@param " (nth 0 x) ": " indent
                            "@type " (nth 0 x) ": ")))
             (mapcar
              '(lambda (x)
                 (mapcar
                  '(lambda (x)
                     (replace-regexp-in-string "[[:blank:]]*$" ""
                      (replace-regexp-in-string "^[[:blank:]]*" "" x)))
                  x))
              (mapcar '(lambda (x) (split-string x "="))
                      (split-string yas-text ",")))
             indent)))
      (if (string= args "")
          (concat indent "@return: " indent "@rtype: " indent (make-string 3 34))
        (mapconcat
         'identity
         (list "" args "@return: " "@rtype: " (make-string 3 34))
         indent)))
    }
    $0
